package com.pagepub.core.tag.validate;


import org.apache.commons.validator.Field;

/**
 * web请求验证接口
 * @author ggd
 *
 */
public interface HtmlValidate
{
	/**
	 * 校验值是否为空,是返回false否则true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */

	public boolean validateEmpty(Object bean,Field field);
	
	/**
	 * 校验日期对象值是否为空,是返回false否则true
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateDateEmpty(Object bean,Field field);
	/**
	 * 校验email格式有效，有效返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateMail(Object bean,Field field);

	/**
	 * 校验电话格式是否有效，有效返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validatePhone(Object bean,Field field);

	/**
	 * 校验手机号码格式是否有效，有效返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateMobile(Object bean,Field field);

	/**
	 * 校验手机或电话号码格式有效，有效返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validatePhoneOrMobile(Object bean,Field field);

	/**
	 * 检验货币格式是否有效，，有效返回false否则返回true(小数点最大为4位)
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateCurrency(Object bean,Field field);

	/**
	 * 判断str是否是url格式，是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateUrl(Object bean,Field field);

	/**
	 * 判断str是否是数字，是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateNumber(Object bean,Field field);

	/**
	 * 判断str是否是邮政编码，是返回true否则返回false,(长度为6位的数字)
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateZip(Object bean,Field field);

	/**
	 * 判断str是否是整数(可带正负号),是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateInteger(Object bean,Field field);

	/**
	 * 判断str是否是单精度(可带正负号),是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateFloat(Object bean,Field field);

	/**
	 * 判断str是否只有字母,是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateEnglish(Object bean,Field field);

	/**
	 * 判断str是否是中文,是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateChinese(Object bean,Field field);

	/**
	 * 判断str是否较为安全的密码串,是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validatePwdSafe(Object bean,Field field);

	/**
	 * 判断str是否是日期时间格式,是返回true否则返回false
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateTime(Object bean,Field field);

	/**
	 * 
	 * 判断str是否是日期格式(不含时间) 例子： String str="2005/01/01";
	 * isDate(str,"ymd","/");//返回true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateDate(Object bean,Field field);

	/**
	 * 判断str是否是日期格式(含时间) 例子： String str="2005/01/01 20:11:23";
	 * isDate(str,"ymd","/");//返回true
	 * 
	 * @param bean
	 * @param field
	 * 
	 * @return
	 */
	public boolean validateDateTime(Object bean,Field field);

	/**
	 * str的长度是否在start与end之间，是返回false否则返回true,str==null返回false
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateLengthScope(Object bean,Field field);

	/**
	 * maxlength校验 str的长度是否超过maxlen,是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateGreatthanMaxLength(Object bean,Field field);

	/**
	 * minlength校验 str的长度是否低于minlen,是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateLessthanMinLength(Object bean,Field field);

	/**
	 * (float类型)判断i <min，是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateFloatGreatthanMin(Object bean,Field field);

	/**
	 * (float类型)判断i>max，是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateFloatGreatthanMax(Object bean,Field field);
	/**
	 * i的值是否在start与end之间，是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateFloatScope(Object bean,Field field);
	/**
	 * (int类型)判断i <min，是返回false否则返回true
	 * 
	 * @param bean
	 * 
	 * @param field
	 * 
	 * 
	 * 
	 * @return
	 */
	public boolean validateIntGreatthanMin(Object bean,Field field);

	/**
	 * (int类型)判断i>max，是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateIntGreatthanMax(Object bean,Field field);

	/**
	 * i的值是否在start与end之间，是返回false否则返回true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateIntScope(Object bean,Field field);

	/**
	 * 判断当前检查的日期大于指定一个日期是返回false否则true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateGreatDate(Object bean,Field field);

	/**
	 * 判断当前检查的日期大于等于指定一个日期是返回false否则true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateGreatEqualDate(Object bean,Field field);

	/**
	 * 判断当前检查的日期小于指定一个日期是返回false否则true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateLessDate(Object bean,Field field);

	/**
	 * 判断当前检查的日期小于等于指定一个日期是返回false否则true
	 * 
	 * @param bean
	 * @param field
	 * @return
	 */
	public boolean validateLessEqualDate(Object bean,Field field);
}
